package com.emser.unc.client.service;

import java.util.ArrayList;
import java.util.List;

import com.emser.unc.serializable.CustomerDTO;
import com.emser.unc.serializable.ResultDTO;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface CustomerServiceAsync {

	void addCustomer(String userAccountName, CustomerDTO seller,
			AsyncCallback<Boolean> callback);

	void deleteCustomers(String userAccountName, ArrayList<Long> customerIds,
			AsyncCallback<Boolean> callback);

	void getCustomers(String cursorString, int range, String userAccountName,
			AsyncCallback<ResultDTO<CustomerDTO>> callback);

	void updateCustomer(String userAccountName, CustomerDTO customer,
			AsyncCallback<Boolean> callback);

	void getCustomersSeller(String cursorString, int range,
			String userAccountName, String sellerkey,
			AsyncCallback<ResultDTO<CustomerDTO>> callback);

	void addCustomersSellerList(String userAccountName,
			List<Long> customersIds, String sellerKey,
			AsyncCallback<Void> callback);

	void getCustomersCount(String userAccountName,
			AsyncCallback<Integer> callback);

	void getSearchCustomers(String cursorString, int range,
			ArrayList<String> searchParam,
			AsyncCallback<ResultDTO<CustomerDTO>> callback);

	void getCustomer(Long idCustomer, String userAccountName,
			AsyncCallback<CustomerDTO> callback);

	void getSearchedCustomersCount(ArrayList<String> searchParam,
			AsyncCallback<Integer> callback);

}
